package com.ctshk.rpc.finance.req.special;

import com.ctshk.rpc.finance.json.FileJson;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 新增特殊收款req
 */
@Data
@ApiModel(value = "SpecialCollectionAddReq",description = "新增特殊收款req")
public class SpecialCollectionAddReq implements Serializable {

    @ApiModelProperty(value = "ID（修改的时候传）")
    private Long id;

    @NotNull(message = "操作类型不能为空")
    @ApiModelProperty(value = "操作类型1 保存，2 审批",required = true)
    private Integer type;

    @NotNull(message = "收款类型不能为空")
    @ApiModelProperty(value = "收款类型1 补贴，2 供应商预订单",required = true)
    private Integer collectionType;

    @NotNull(message = "补贴来源类型不能为空")
    @ApiModelProperty(value = "补贴来源类型1 旅行团，2 定制包团",required = true)
    private Integer subsidySource;

    @NotNull(message = "付款方不能为空")
    @ApiModelProperty(value = "付款方",required = true)
    private String payer;

    @NotNull(message = "收款时间不能为空")
    @ApiModelProperty(value = "收款时间",required = true)
    private LocalDateTime collectionTime;

    @NotNull(message = "收款部门不能为空")
    @ApiModelProperty(value = "收款部门",required = true)
    private Long departmentId;

    @NotNull(message = "部门名称不能为空")
    @ApiModelProperty(value = "部门名称",required = true)
    private String departmentName;

    @ApiModelProperty(value = "收款金额")
    private BigDecimal receivedAmount;

    @NotNull(message = "币种ID不能为空")
    @ApiModelProperty(value = "币种ID",required = true)
    private Long currencyId;

    @NotNull(message = "币种名称不能为空")
    @ApiModelProperty(value = "币种名称",required = true)
    private String currencyName;

    @NotNull(message = "汇率不能为空")
    @ApiModelProperty(value = "汇率",required = true)
    private Double exchangeRate;

    @NotNull(message = "补贴类型不能为空")
    @ApiModelProperty(value = "补贴类型1 旅游小费 2 佣金 3 补贴 4 其他",required = true)
    private Integer subsidyType;

    @NotNull(message = "收入來源不能为空")
    @ApiModelProperty(value = "收入來源",required = true)
    private List<CollectionSourceReq> idList;

    @ApiModelProperty(value = "收款方式ID")
    private Long collectionWayId;

    @ApiModelProperty(value = "收款方式")
    private String collectionWayName;

    @ApiModelProperty(value = "附件")
    private List<FileJson> filesJson;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "用户ID")
    private Long userId;

}
